The present invention relates to the field of global positioning systems, and more particularly to a method and apparatus for receiving and tracking satellite signals in a highly sensitive and accurate receiver.
A conventional Global Positioning System (GPS) receiver acquires, tracks, and demodulates the synchronized signals transmitted from a multiplicity of GPS satellites in order to compute the position of the receiver.
Each GPS satellite transmits a direct sequence spread spectrum signal, which is modulated by a repeated code represented by a sequence of binary phase states, called chips. A specific sequence of chips corresponding to a code is called a pseudorandom or pseudonoise (PN) sequence. Each GPS satellite broadcasts a signal with a unique code, i.e., a unique PN sequence. The codes available for civilian applications in the U.S., called C/A codes, are from a family known as Gold codes. A C/A code consists of 1023 chips in a frame period of one millisecond (msec). Thus, a code is repeated in a GPS signal every one millisecond.
In addition, a 50-baud Binary Phase Shift Keyed (BPSK) data is superimposed on the pseudonoise sequence. The bit boundaries of the BPSK data are aligned with the beginning of PN sequences so that there are 20 complete PN sequences in each data bit period (i.e., 20 msec). The BPSK data contains ephemeris data, which specifies the position of the satellite and clock timing of the GPS signal.
Thus, an ideal received GPS signal, without any additive noise and interference, is in the form:
s(t)=AP(txe2x88x92xcfx84)d(txe2x88x92xcfx84)cos[2xcfx80f0(txe2x88x92xcfx84)+xcex8t]xe2x80x83xe2x80x83(1)
where A is the amplitude of the signal; P(t), which has value +1 or xe2x88x921, is the pseudonoise modulation at time t; d(t) is the BPSK data, which also has value either +1 or xe2x88x921; f0 is the nominal carrier frequency in Hertz; xcex8t is the phase angle, which may slowly vary due to Doppler effects, phase noises, etc.; and xcfx84 is the delay to be estimated by the receiver. In practice, the amplitude A typically varies slowly with time. The fact that time variable t may stretch or contract with time due to Doppler effects may be incorporated into the quantities f0, xcfx84 and xcex8t.
A primary task of a GPS receiver is to measure the parameters xcfx84, f0, and xcex8t of the received GPS signals transmitted from a multiplicity of GPS satellites in order to compute the position of the receiver. The measuring of the parameter xcfx84 is typically performed on a continuing basis using a circuit called a xe2x80x9cPN Tracking Circuitxe2x80x9d. As part of this measurement process, the carrier frequency f0 and the residual phase angle xcex8t are measured and compensated for in a circuit called a xe2x80x9cCarrier Tracking Circuitxe2x80x9d. Conventionally, the PN and Carrier Tracking circuits take the form of feedback circuits, called closed tracking loops.
In general, conventional tracking loops utilize feedback circuitry that attempts to produce a locally generated reference signal that replicates the received signal, i.e., to align the reference signal with the received signal. FIG. 1 shows a block diagram of a closed loop tracking method according to one embodiment of the prior art. The signal discriminator 510 generates a correction signal, which indicates how to correct the reference signal 514. The correction signal is fed back on line 515 to reduce the difference between the received signal and the reference signal. Since this is done in a continuing manner, the procedure may be viewed as an iterative, or xe2x80x9cclosed loopxe2x80x9d, type of method.
For example, in a PN tracking loop circuit, a local PN generator replicates the PN sequence in a received GPS signal. The locally generated PN sequence is compared in this circuit to a PN sequence in the received GPS signal to produce an output whose magnitude corresponds to the degree of synchronization between the local reference sequence and the received sequence. When the two sequences are synchronized, the amplitude of the output reaches a maximum; when the two sequences drift apart, the amplitude of the output decreases. Thus, the change of the amplitude of the output is used to adjust the timing of the local PN generator to increase the amplitude of the subsequent output. This is a servo or feedback type of technique. Similar techniques are also used to track the phase and the frequency of the carrier of the GPS signal.
Closed loop tracking works well when the parameters of the received GPS signal, such as amplitude and delay, vary slowly in time, in which case long term averaging of the parameters of a GPS signal can be performed. However, there are many situations in which the parameters of the signal change rapidly in an unpredictable manner. For example, when a GPS receiver is moving inside a building, the received signal fluctuates rapidly in amplitude, delay, and carrier due to the unpredictable superposition of the direct signal and the reflected signals, emanating from walls, large objects, etc. Similarly, when a GPS receiver is operated in city environments with large buildings, so-called xe2x80x9curban canyonsxe2x80x9d, the signal level may fluctuate rapidly if the GPS receiver is moving rapidly, such as when the receiver and its antenna is moving with an automobile. Again, the culprit is the unpredictable interference between the direct signal and the reflected signals. Often there is no direct signal from the GPS satellite, and all received are reflected signals. This situation further exacerbates the speed and the degree of the fluctuation in the parameters of the received signal.
A closed tracking loop performs poorly when the received GPS signal fluctuates rapidly. In a closed loop tracking system, a prior measurement of a parameter p of the received signal and a correction signal, which is typically related to an estimated error in the prior measurement (or measurements), are used to produce a current measurement of the parameter, i.e.,
{circumflex over (p)}(n+1)=h({circumflex over (p)}(n), e(n))xe2x80x83xe2x80x83(2)
where {circumflex over (p)}(n) is the measurement of the parameter p at time n; e(n) is an estimated error of the prior measurement, and h is a linear or nonlinear function. Typically, an increment of n may correspond to one or more PN frame periods.
In some formulations the argument of the function h contains a multiplicity of prior measurements, {circumflex over (p)}(n),{circumflex over (p)}(nxe2x88x921),{circumflex over (p)}(nxe2x88x921), . . . , and/or errors e(n), e(nxe2x88x921), e(nxe2x88x922), . . . . However, for simplicity and for illustrative purposes we utilize the simplified formulation of (2).
Also, many authors refer to the measurements of the parameter p as xe2x80x9cestimatesxe2x80x9d since the measurement process includes noise that limits the precision of such measurements. In this invention the term xe2x80x9cmeasurementxe2x80x9d, when referring to a parameter, is synonymous with estimate of the parameter.
To illustrate the characteristics of a closed tracking loop, consider a linear form of equation (2), i.e.,
{circumflex over (p)}(n+1)={circumflex over (p)}(n)+ke(n)xe2x80x83xe2x80x83(3)
where k is a constant or a slowly varying parameter. If the error e(n) is expressed as e(n)=p(n)xe2x88x92{circumflex over (p)}(n), where p(n) is the exact value of the parameter p at time n, equation (3) can be rewritten as
{circumflex over (p)}(n+1)=(1xe2x88x92k){circumflex over (p)}(n)+kp(n)xe2x80x83xe2x80x83(4)
which is essentially a single pole filter type response with a time constant 1/k. Thus, an initial error in {circumflex over (p)} is reduced by a factor of approximately exp(xe2x88x921)≈0.37 in a period equal to 1/k iterations.
In a system with k close to, but less than, unity, only the most recent measurements contribute to the corrections; hence the measurements may follow the rapid changes in the received signal. However, the system performs poorly when the received signal is weak, since there is little averaging of prior measurements. On the other hand, in a system with a small k, many prior measurements contribute to corrections and hence the system performs well, even when the received signal is weak. However, when the received signal is weak, the system performs poorly when this signal changes rapidly.
Therefore, closed tracking loops have inevitable limitations. When the parameters of the received signal change so rapidly that a closed tracking loop fails to follow the change rapidly enough to produce an accurate result, a xe2x80x9cloop loss-of-lockxe2x80x9d situation occurs. A xe2x80x9cwidexe2x80x9d loop with a strong (k near unity) correction signal may follow the rapid change of the received signal, but performs poorly when the signal is weak, since the loop is not able to distinguish received noise and interference from the desired signal. On the other hand, a xe2x80x9cnarrowxe2x80x9d (small k) loop with a weak correction signal may often not be able to follow a rapidly changing signal.
Various approaches may be devised to make the loop design adaptable to different conditions and hence overcome some of the limitations just discussed. However, these xe2x80x9cadaptivexe2x80x9d approaches inevitably fail or are poor in performance when the signal dynamics and strength are sufficiently variable and unpredictable.
Methods and apparatuses for open loop tracking Global Positioning System (GPS) signals are described here.
In one aspect of the invention an exemplary method includes: (A) generating a set of at least three indicators based on processing a portion of a satellite positioning system signal received by a receiver; and (B) computing a measurement of a parameter from an interpolation of the set of indicators. Each of the indicators is indicative of a probability that a parameter of the signal (e.g., time-of-arrival of the GPS signal or carrier frequency of the GPS signal) is a predetermined value. Serial correlations, matched filtering, fast Fourier transformation, and fast convolution are among the methods used to generate these indicators.
In another aspect of the present invention, an exemplary method includes performing a de-spreading operation on a portion of a satellite positioning system signal to produce de-spread data; and performing an open-loop frequency measurement operation on the de-spread data to produce a frequency measurement of the signal. In some embodiments of the present invention, the open-loop frequency measurement operation includes: (A) performing a nonlinear operation on the de-spread data to produce first data; (B) performing a spectral analysis operation on the first data to produce spectral data; (C) and computing a frequency measurement of the signal from a location of a peak in the spectral data. In some embodiments of the present invention, the open-loop frequency measurement operation includes: (A) performing a nonlinear operation on the de-spread data to produce first data; (B) performing an averaging operation on the first data to produce averaged data; (C) computing an angle of the averaged data; and (D) computing a frequency measurement of the signal using the angle. In some embodiments of the present invention, the nonlinear operation includes a squaring operation. In some other embodiments of the present invention, the nonlinear operation includes a conjugation, delay and multiplication operation.
The present invention includes apparatuses which perform these methods, including GPS receivers which perform these methods and machine-readable media which, when executed in a GPS receiver, cause the receiver to perform these methods.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description, which follows.